million_squares  =  (x*x  for x  in range(1,  1000001))
million_squares
list(million_squares) #takes some time - don't run it!
list(million_squares) 

sum(x*x  for x  in range(1,  10000001)) #doesn't take as long because it is lazy


#Using an if-clause in generator expressions
sum(x for x in range(1001) if is_prime(x))